Skip to content

feat/ui 3d peek#12

Draft
dustenhubbard wants to merge 3 commits into
feat/ui-v1-lists-panelfrom
feat/ui-3d-peek
Draft

feat/ui 3d peek#12
dustenhubbard wants to merge 3 commits into
feat/ui-v1-lists-panelfrom
feat/ui-3d-peek

Conversation

@dustenhubbard

Copy link
Copy Markdown
Owner
  • feat(ui): add a right-edge 3D-scene slide-over (peek)
  • test(ui): cover the 3D-scene peek lifecycle, wiring, and animation

Add a "3D Scene" slide-over that slides in over the field with a dimming
scrim, for a quick 3D peek without leaving the 2D view, following the v1
prototype's .slideover (header with reset/close + 3D body + footer). The
panel, scrim, and a floating "3D Scene" pill are children of the main
window, pinned to the field's right edge and re-pinned on resize via an
event filter; the slide and scrim fade respect the reduced-motion case.

Open via the pill, the Series > 3D menu (a checkbox synced to the open
state), or Ctrl+Shift+D (the prototype's bare "3" and every digit-3 chord
are already bound to palette buttons). The footer's "Open full 3D" hands
off to the existing window-based viewer.

The body is a faithful static preview in this slice; setSceneWidget() is
the seam to host the real CustomPlotter once it accepts an external parent
(live VTK needs a GL context and cannot be exercised offscreen).
Headless offscreen tests for the slide-over: right-edge geometry and the
min(460px, 62%) sizing, open/close/toggle state and visibility, the
reduced-motion and animated paths (including in-flight resize retargeting),
field-resize re-pin, close via scrim/Escape/button (direct and through real
event dispatch), the menu-action and Ctrl+Shift+D wiring, the checkActions
sync guard, and the "Open full 3D" hand-off.
@dustenhubbard dustenhubbard added this to the v1.30.0 milestone Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant